package com.hyl.demo.config;

import com.hyl.demo.constants.MQConstant;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DirectQueueConfig {

    /**
     * 初始化队列
     * @return
     */
    @Bean
    public Queue directQueue(){
        //参数说明： 队列名称 是否持久化
        return new Queue(MQConstant.QUEUE_NAME,true);
    }

    /**
     * 初始化队列:工作队列
     * @return
     */
    @Bean
    public Queue workQueue(){
        //参数说明： 队列名称 是否持久化
        return new Queue(MQConstant.QUEUE_WORD_NAME,true);
    }

    /**
     * 初始化交换机
     * @return
     */
    @Bean
    public DirectExchange TestDirectExchange() {
        //参数说明： 交换机名称 是否持久化 是否自动删除
        return new DirectExchange(MQConstant.EXCHANGE_DIRECT_NAME,true,false);
    }

    @Bean
    Binding bindingDirect() {
        return BindingBuilder.bind(directQueue()).to(TestDirectExchange()).with(MQConstant.ROUTING_DIRECT);
    }
}
